Add eidetic remember/recall memory skills#3
Conversation
- **Vendored the `remember` + `recall` memory skills from eidetic-cli** (cite-don't-import) — the write/read halves of eidetic's shared `~/.eidetic/memory` surface, so this agent (Claude and its colleague backend) can persist facts across sessions and recall them later, sharing one store. `remember` drives `eidetic remember` (idempotent upsert of one JSON record or an NDJSON batch on stdin, dedup by id + content hash); `recall` drives `eidetic recall` with four search modes — exact / approximate / keyword / hybrid — each hit carrying text, full provenance metadata, a relevance score, and a freshness signal. The `.sh` wrappers are byte-verbatim from eidetic-cli (their first-party origin); each `SKILL.md` is localized only in the illustrative `--scope <nick>` examples (Provenance keeps "First-party to eidetic-cli"). Both default to this agent's PRIVATE scope, reading the suffix from `culture.yaml`. Runtime dep: the `eidetic` CLI on PATH (else a local eidetic-cli checkout with `uv`). Propagated by rollout-cli's `eidetic-memory` recipe.
|
PR Summary by QodoVendor eidetic remember/recall skills for shared persistent memory Description
Diagram
High-Level Assessment
Files changed (6)
|
Code Review by Qodo
1. Missing delta check note
|
| --- | ||
| name: recall | ||
| type: command |
There was a problem hiding this comment.
1. Missing delta check note 📜 Skill insight ≡ Correctness
This PR adds new files under .claude/skills/, which triggers the requirement to run an alignment delta check and document any sibling follow-up needs in the review reply. The PR should not be merged until the delta check result is explicitly noted.
Agent Prompt
## Issue description
This PR modifies `.claude/skills/`, so an alignment delta check must be run and the results (including any sibling repo needing a follow-up PR) must be noted in the review reply.
## Issue Context
Compliance requires an explicit statement in the review reply that `workflow.sh delta` (or equivalent) was run and what siblings, if any, require follow-up.
## Fix Focus Areas
- .claude/skills/recall/SKILL.md[1-3]
- .claude/skills/remember/SKILL.md[1-3]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| : "${EIDETIC_EMBED_MODEL:=Qwen/Qwen3-Embedding-0.6B}" | ||
| export EIDETIC_EMBED_URL EIDETIC_EMBED_MODEL | ||
|
|
||
| exec "${EIDETIC[@]}" recall "${SCOPE_ARGS[@]}" "$@" |
There was a problem hiding this comment.
2. recall.sh forwards exit codes 📘 Rule violation ≡ Correctness
recall.sh and remember.sh use exec to run eidetic, which causes the scripts to pass through whatever exit code eidetic (or a set -e failure) returns, potentially producing exit codes other than 0, 1, or 2. This violates the exit-code restriction requirement for entry-point scripts.
Agent Prompt
## Issue description
The `recall.sh` and `remember.sh` entry-point wrapper scripts can exit with arbitrary codes because they `exec` `eidetic` directly, and `set -euo pipefail` can also cause propagation of non-`0`/`1`/`2` exit codes.
## Issue Context
Compliance requires process exit codes to be restricted to `0`, `1`, or `2` only.
## Fix Focus Areas
- .claude/skills/recall/scripts/recall.sh[14-141]
- .claude/skills/remember/scripts/remember.sh[21-138]
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools
| Shadowed and archived records are excluded by default; use | ||
| --include-shadowed / --include-archived to retrieve them. The store lives at | ||
| ~/.eidetic/memory (a home-dir path outside any git worktree); the wrapper | ||
| defaults queries to this agent's PERSONAL, PRIVATE scope (`--scope tensor-cli |
There was a problem hiding this comment.
4. Portability lint failure 🐞 Bug ☼ Reliability
The new SKILL docs hard-code ~/.eidetic/memory, which matches the repo’s portability-lint rule that flags ~/.<dotfile> references in committed .md/config files. Running .claude/skills/cicd/scripts/portability-lint.sh on this PR will fail.
Agent Prompt
## Issue description
The repo’s portability lint flags `~/.*` dotfile references in committed markdown/config files. The new memory skills document the store path as `~/.eidetic/memory`, which will be flagged.
## Issue Context
`portability-lint.sh` searches modified `.md|.yaml|.toml|.json` files for `~/\.[A-Za-z]` and fails unless the path matches one of a couple carve-outs.
## Fix Focus Areas
- .claude/skills/recall/SKILL.md[11-14]
- .claude/skills/remember/SKILL.md[11-13]
- .claude/skills/cicd/scripts/portability-lint.sh[26-35]
## Suggested fix approach
Change docs to use a portable form that doesn’t trip the lint, e.g. `$HOME/.eidetic/memory` (or `${HOME}/.eidetic/memory`) instead of `~/.eidetic/memory`. If you intentionally want to allow this dotdir literal, add a carve-out in `portability-lint.sh` for `~/.eidetic/`, but prefer the doc change to keep the lint strict.
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Vendors eidetic-cli's first-party
remember+recallmemory skills into this repo's.claude/skills/kit (cite-don't-import), giving this agent a shared, persistent memory surface (~/.eidetic/memory) that Claude and the colleague backend both read and write.remember→eidetic remember: idempotent upsert of one JSON record or an NDJSON batch on stdin (dedup by id + content hash).recall→eidetic recall: four search modes (exact / approximate / keyword / hybrid), each hit carrying text, full provenance metadata, a relevance score, and a freshness signal.The
.shwrappers are byte-verbatim from eidetic-cli (their first-party origin); this repo'sSKILL.mdscope examples are localized to its own nick. Version bumped + CHANGELOG updated per the AgentCulture rule. Runtime dep: theeideticCLI on PATH (else a local eidetic-cli checkout +uv).Propagated by rollout-cli's
eidetic-memoryrecipe (origin: agentculture/eidetic-cli). Squash-merge at your discretion.🤖 Generated with Claude Code